import java.util.Random;
import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        //编写一个递归程序，求一个一维数组的所有元素的和？
        int[] array = new int[]{1,2,3,4,5,6,7,8,9};
        System.out.println(arraySum(array,array.length-1));
    }
    public static int arraySum(int[]array, int len) {
        if(len == 0) {
            return array[len];
        }
        return array[len] + arraySum(array,len-1);
    }
    public static void main2(String[] args) {
        //暑假作业
        //一对相亲数是指：甲的约数之和等于乙，乙的约数之和等于甲。求1000以内的相亲数。

        for(int i = 1; i <= 1000; i++) {
            int ret = approximateNumber(i);
            if(approximateNumber(ret) == i) {
                System.out.println(ret+"和"+i+"是相亲数");
            }
        }

    }
    public static int approximateNumber(int num) {
        int sum = 0;
        for(int i = 1; i < num; i++) {
            if(num%i==0) {
                sum+=i;
            }
        }
        return sum;
    }
    public static void main1(String[] args) {
        System.out.println("Hello world!");
        //For reviewing notes
        //数组
        //数组的创建分为 1动态创建-指定长度 2静态创建-指定内容
        int[] arr1 = new int[10];// ==> 动态创建一个十个int大小的数组
        int[] arr2 = {1,2,3,4,5};// ==> 静态创建存放该组数据大小的空间

        //数组拆分创建 实质就是创建一个数组引用，给该引用实例化一个对象
        int[] arr3;
        arr3 = new int[5];
        arr3 = new int[]{1,2,3,4};

        Random random = new Random();
        int[] testArray = new int[10];
        for(int i = 0; i < 10; i++) {
            testArray[i] = random.nextInt(520);
        }
        for (int x : testArray) {
            System.out.print(x+" ");
        }
        System.out.println();
        System.out.println(Arrays.toString(testArray));

    }
}